//
//  main.m
//  08-类的扩展
//
//  Created by 402030900@qq.com on 16/7/13.
//  Copyright © 2016年 402030900@qq.com. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "NSObject+SayHello.h"
#import "NSString+Capital.h"
#import "Student.h"
#import "BuyPerson.h"
int main(int argc, const char * argv[]) {
    // 类的扩展方式
    // 1.Category(类别.类目.分类)
    //   1> Category的创建
    //      通过Objective-C File创建
    //      会产生两个文件 .h .m
    //      文件名会以 类名+Category名
    //   2> Category的使用
    //      向对应文件中添加需要添加方法
    //      引入到你对应要使用的位置
    NSObject * objc = [[NSObject alloc]init];
    [objc sayHello];
    // 练习:为NSString类扩展一个新的方法,要求获取字符串的首字母并且将该首字母大写
   NSString * string = @"this";
    NSString * getCapital = [string Capital];
    NSLog(@"%@",getCapital);
    // 2. Extension
    // 延展,一般定义在.m中,其中声明一些私有的属性/方法
    // 保持.h的整洁
    // 3. 代理delegate设计模式
    // 举例:海外代购
    // 委托方
    Student * stu = [[Student alloc]init];
    // 代购
    BuyPerson * buyPerson = [[BuyPerson alloc] init];
    // 6.设定代理人
    stu.delegate = buyPerson;
    [stu seeWeChat];
    return 0;
}
